<!DOCTYPE html>
<html>
  <head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"/>
	<title>jTopo Demo</title>
	<meta name="description" content="jTopo免费的基于HTML5 Canvas的网络拓扑、关系图形库">
	<meta name="keyword" content="jTopo 网络 拓扑 图形库 HTML5 Canvas 免费 关系图形库 javascript topology">	

	<link rel="stylesheet" type="text/css" href="../css/base.css">
	<link href="../css/jquery.snippet.min.css" rel="stylesheet">
	
	<script src="../js/jquery.js"></script>
	<script src="../js/site.js"></script>
	<script src="../js/demo.js"></script>
	
	<script type="text/javascript" src="js/snippet/jquery.snippet.min.js"></script>
	
	<script type="text/javascript" src="js/jtopo-min.js"></script>
	<script type="text/javascript" src="js/toolbar.js"></script>
	
	<script id='code'>			
		$(document).ready(function(){					
			var canvas = document.getElementById('canvas');
			var stage = new JTopo.Stage(canvas);
			//显示工具栏
			showJTopoToobar(stage);

			var scene = new JTopo.Scene();				
			scene.mode = 'drag';
			
			var packageNode = new JTopo.UMLClassNode('JTopo.stage');
			packageNode.setLocation(canvas.width/2, canvas.height/2);
			scene.add(packageNode);
			
			var objs = [];
			function exist(o1, o2){
				for(var i=0; i<objs.length; i++){
					if(o1 == objs[i].obj && o2 == objs[i].child) return true;
					if(o2 == objs[i].obj && o1 == objs[i].child) return true;
				}
				return false;
			}
			
			var n = 0;
			function showObj(obj, objNode){				
				n++;
				if(n > 2) return;								
				for(var k in obj){
					var v = obj[k];
					if(v == null) continue;
					if(typeof v == 'object'){						
						var umlNode = new JTopo.UMLClassNode(k);
						if(!exist(v, obj)){						
							umlNode.classObj = v;
							umlNode.setLocation(300, 250);				
							umlNode.layout = {type: 'star', radius:560, beginDegree:-Math.PI/2, endDegree: Math.PI/2};
							scene.add(umlNode);												
							
							scene.add(new JTopo.ArrowsLink(objNode, umlNode, 'y'));	
							objs.push({obj:obj, child:v});
						}
						if(v && v.length && v.sort && v.concat){
							showObj(v[0], umlNode);
						}else
						{							
							showObj(v, umlNode);	
						}						
					}
				}				
				n--;
			}
						
			stage.add(scene);
		
			showObj(stage, packageNode);
			
			packageNode.layout = {type: 'star', radius:560};
			scene.layoutNode(packageNode);
			packageNode.addEventListener('mouseup', function(){
				scene.layoutNode(packageNode);
			})
			
		});
	</script>
  </head>

  <body>

	<center>
	<div class="wrap_div">
		<div class="head_nav">
			<h2 class="logo"><a href="index.html" title="jTopo">jTopo</a></h2>
		</div>		
		<div class="head_nav_second">			
			<ul class="menu" id="nav_menu">
			
			</ul>
		</div>
		<div class="content">
		  <div class="left">
			<ul id="menu">
			
			</ul>
		  </div>
		  <div class="right">
				<div id="content">					<canvas width="850" height="550" id="canvas"></canvas>	
					
				</div>
		  </div>
		  <div class="clear"></div>
		</div>
	</div>
	</center>
	<div class="footer">
		&nbsp;
	</div>
  
	<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1000418207'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "v1.cnzz.com/z_stat.php%3Fid%3D1000418207%26show%3Dpic1' type='text/javascript'%3E%3C/script%3E"));</script>
</body>

</html>